home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / AIncludes / GXPrinterDrivers.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  36.0 KB  |  832 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        GXPrinterDrivers.a
  3. ;
  4. ;    Contains:    This file defines data types and API functions for printer driver development.
  5. ;
  6. ;    Version:    Technology:    Quickdraw GX 1.1
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__GXPRINTERDRIVERS__') = 'UNDEFINED' THEN
  18. __GXPRINTERDRIVERS__ SET 1
  19.  
  20.     IF &TYPE('__SCALERSTREAMTYPES__') = 'UNDEFINED' THEN
  21.     include 'ScalerStreamTypes.a'
  22.     ENDIF
  23.     IF &TYPE('__GXMESSAGES__') = 'UNDEFINED' THEN
  24.     include 'GXMessages.a'
  25.     ENDIF
  26.     IF &TYPE('__PRINTING__') = 'UNDEFINED' THEN
  27.     include 'Printing.a'
  28.     ENDIF
  29.     IF &TYPE('__GXPRINTING__') = 'UNDEFINED' THEN
  30.     include 'GXPrinting.a'
  31.     ENDIF
  32.  
  33. ;  ------------------------------------------------------------------------------
  34. ;
  35. ;                        Desktop Printer Constants and Types
  36. ;
  37. ;-------------------------------------------------------------------------------- 
  38.  
  39. ;  Manual feed alert preferences structure for gxManualFeedAlertPrefsType desktop printer resource 
  40. gxManualFeedAlertPrefs    RECORD 0
  41. alertFlags                 ds.l    1                ; offset: $0 (0)        ;     Flags--first word is for driver's private use, the rest is predefined. 
  42. sizeof                     EQU *                    ; size:   $4 (4)
  43.                         ENDR
  44. ; typedef struct gxManualFeedAlertPrefs * gxManualFeedAlertPrefsPtr
  45.  
  46. ; typedef gxManualFeedAlertPrefsPtr *    gxManualFeedAlertPrefsHdl
  47.  
  48. ;  Constants for the alertFlags field of gxManualFeedAlertPrefs.
  49.  
  50. gxShowAlerts                    EQU        $00000001            ; Show alerts for this desktop printer. 
  51. gxAlertOnPaperChange            EQU        $00000002            ; …only if the papertype changes. 
  52.  
  53. gxDefaultMFeedAlertSettings        EQU        $00000003
  54.  
  55. ;  Driver output settings structure for desktop printer gxDriverOutputType resource 
  56. gxDriverOutputSettings    RECORD 0
  57. driverflags                 ds.l    1                ; offset: $0 (0)        ;     Flags -- for use by driver. 
  58. outputSettings             ds.l    1                ; offset: $4 (4)        ;     Flags -- predefined. 
  59. sizeof                     EQU *                    ; size:   $8 (8)
  60.                         ENDR
  61. ; typedef struct gxDriverOutputSettings * gxDriverOutputSettingsPtr
  62.  
  63. ; typedef gxDriverOutputSettingsPtr *    gxDriverOutputSettingsHdl
  64.  
  65. ;  Constants for the outputSettings field of gxDriverOutputSettings. 
  66.  
  67. gxCanConfigureTrays                EQU        $00000001            ; Desktop printer represents a device with a paper feed. 
  68. ;  ------------------------------------------------------------------------------
  69. ;
  70. ;                        Printing Driver Constants and Types
  71. ;
  72. ;-------------------------------------------------------------------------------- 
  73.  
  74.  
  75. gxInputTraysMenuItem            EQU        -1                    ; Menu item number for "Input Trays..." 
  76.  
  77. ;  Buffering and IO preferences-- this structure mirrors the 'iobm' resource 
  78. gxIOPrefsRec            RECORD 0
  79. communicationsOptions     ds.l    1                ; offset: $0 (0)        ;  Standard or nonstandard I/O? 
  80. numBuffers                 ds.l    1                ; offset: $4 (4)        ;  Requested number of buffers for QDGX to create 
  81. bufferSize                 ds.l    1                ; offset: $8 (8)        ;  The size of each buffer 
  82. numReqBlocks             ds.l    1                ; offset: $C (12)        ;  The number of async I/O request blocks which will be needed 
  83. openCloseTimeout         ds.l    1                ; offset: $10 (16)        ;  The open/close timeout (in ticks) 
  84. readWriteTimeout         ds.l    1                ; offset: $14 (20)        ;  The read/write timeout (in ticks) 
  85. sizeof                     EQU *                    ; size:   $18 (24)
  86.                         ENDR
  87. ; typedef struct gxIOPrefsRec *            gxIOPrefsPtr
  88.  
  89. ; typedef gxIOPrefsPtr *                gxIOPrefsHdl
  90.  
  91. ;  Constants for the communicationsOptions field of IOPrefsRec. 
  92.  
  93. gxUseCustomIO                    EQU        $00000001            ; Driver uses a non-standard IO mechanism 
  94.  
  95. ;  Information about writing to a file 
  96. gxPrintDestinationRec    RECORD 0
  97. printToFile                 ds.b    1                ; offset: $0 (0)        ;  True if output is to go to a file 
  98. padByte                     ds.b    1                ; offset: $1 (1)
  99. fSpec                     ds        FSSpec            ; offset: $2 (2)        ;  If going to a file, the FSSpec for the file 
  100. includeFonts             ds.b    1                ; offset: $48 (72)        ;  True if fonts are to be included 
  101. pad2                     ds.b    1                ; offset: $49 (73)
  102. fileFormat                 ds        Str31            ; offset: $4A (74)        ;  Format to write file 
  103. sizeof                     EQU *                    ; size:   $6A (106)
  104.                         ENDR
  105. ; typedef struct gxPrintDestinationRec * gxPrintDestinationPtr
  106.  
  107. ; typedef gxPrintDestinationPtr *        gxPrintDestinationHdl
  108.  
  109. ;  This structure is the content of each cell in the standard PACK LDEF 
  110. gxPortListRec            RECORD 0
  111. firstMarker                 ds.b    1                ; offset: $0 (0)        ;  Markers to indicate icon or non-icon version 
  112. secondMarker             ds.b    1                ; offset: $1 (1)        ;  if these are ≈ and ≈, then the cell is an icon cell. 
  113. ;  Otherwise, it is assumed to be a standard text LDEF 
  114. ;  cell 
  115. iconSuiteHandle             ds.l    1                ; offset: $2 (2)        ;  The icon suite to draw for this cell 
  116. outputDriverName         ds.l    1                ; offset: $6 (6)        ;  Handle to the output driver name (for serial) 
  117. inputDriverName             ds.l    1                ; offset: $A (10)        ;  Handle to the input driver name (for serial) 
  118. iconName                 ds        Str255            ; offset: $E (14)        ;  Name to draw under the icon 
  119. sizeof                     EQU *                    ; size:   $10E (270)
  120.                         ENDR
  121. ; typedef struct gxPortListRec *        gxPortListPtr
  122.  
  123. ;  ------------------------------------------------------------------------------
  124. ;
  125. ;                        Printing Driver Constants for resources in the desktop printer
  126. ;
  127. ;-------------------------------------------------------------------------------- 
  128.  
  129.  
  130. gxDeviceCommunicationsID        EQU        0
  131.  
  132. ;  ----------------------------------• 'prod' •---------------------------------- 
  133. ;      For PostScript devices, the device and version names of the device.
  134. ;      (0) product name is of type PString
  135. ;      (1) version is of type PString
  136. ;      (2) revision is of type PString
  137. ;      (3) vm available is of type long
  138. ;      (4) font stream type is of type scalerStreamTypeFlag
  139. ;      (5) language level is of type long
  140. ;
  141.  
  142.  
  143.  
  144. gxPostscriptProductInfoType        EQU        'prod'
  145. gxPostscriptProductNameID        EQU        0
  146. gxPostscriptVersionID            EQU        1
  147. gxPostscriptRevisionID            EQU        2
  148. gxPostscriptVMAvailableID        EQU        3
  149. gxPostscriptFontStreamTypeID    EQU        4
  150. gxPostscriptLanguageLevelID        EQU        5
  151.  
  152. ;  PPD support definitions
  153.  
  154. gxPPDInformationTag                EQU        'ppda'                ; tag used for job collection
  155. gxPPDInformationTagID            EQU        -28672                ; ID for job collection tag
  156.  
  157. gxPPDInformationType            EQU        'ppda'                ; rsource type as stored in desktop printer
  158. gxPPDInformationResID            EQU        -27648                ; ID of rsource stored in desktop printer
  159. gxPPDFileInfoRec        RECORD 0
  160. dataOffset                 ds.l    1                ; offset: $0 (0)        ;  byte offset to beginning of ppd data
  161. dataLength                 ds.l    1                ; offset: $4 (4)        ;  length of ppd data
  162. reserved                 ds.l    1                ; offset: $8 (8)        ;  reserved
  163. aliasRecordSize             ds.l    1                ; offset: $C (12)        ;  size of alias record below
  164. ppdAlias                 ds.b    1                ; offset: $10 (16) <-- really an array of length one ;  the actual alias record data
  165.                          ORG 18
  166. sizeof                     EQU *                    ; size:   $12 (18)
  167.                         ENDR
  168. ; typedef struct gxPPDFileInfoRec *        gxPPDFileInfoPtr
  169.  
  170. ; typedef gxPPDFileInfoPtr *            gxPPDFileInfoHdl
  171.  
  172. ;  ------------------------------------------------------------------------------
  173. ;
  174. ;                        Printing Driver Constants for status alerts
  175. ;
  176. ;-------------------------------------------------------------------------------- 
  177.  
  178.  
  179. ;  Structure passed in statusBuffer of StatusRecord for manual feed alert 
  180. gxManualFeedRecord        RECORD 0
  181. canAutoFeed                 ds.b    1                ; offset: $0 (0)        ;  True if driver can switch to auto feed 
  182. pad1                     ds.b    1                ; offset: $1 (1)
  183. paperTypeName             ds        Str31            ; offset: $2 (2)        ;  Name of paperType to feed manually 
  184. sizeof                     EQU *                    ; size:   $22 (34)
  185.                         ENDR
  186.  
  187. ;  Structure passed in statusBuffer of StatusRecord for out of paper alert 
  188. gxOutOfPaperRecord        RECORD 0
  189. paperTypeName             ds        Str31            ; offset: $0 (0)        ;  Name of printing document 
  190. sizeof                     EQU *                    ; size:   $20 (32)
  191.                         ENDR
  192.  
  193. ;  The DITL id for the auto feed button in the manual feed alert 
  194.  
  195. gxAutoFeedButtonId                EQU        3
  196.  
  197. ;  Status resource id for the alerts 
  198.  
  199. gxUnivAlertStatusResourceId        EQU        -28508
  200.  
  201. ;  Status resource indices for alerts 
  202.  
  203. gxUnivSetTrayIndex                EQU        0
  204. gxUnivManualFeedIndex            EQU        2
  205. gxUnivFailToPrintIndex            EQU        3
  206. gxUnivPaperJamIndex                EQU        4
  207. gxUnivOutOfPaperIndex            EQU        5
  208. gxUnivNoPaperTrayIndex            EQU        6
  209. gxUnivPrinterReadyIndex            EQU        7
  210. gxUnivAlertBeforeIndex            EQU        9
  211. gxUnivAlertAfterIndex            EQU        10
  212.  
  213. ;  Allocation sizes for status buffers needed for automatic alerts 
  214.  
  215. gxDefaultStatusBufferSize        EQU        10
  216. gxManualFeedStatusBufferSize    EQU        34
  217. gxOutOfPaperStatusBufferSize    EQU        42
  218.  
  219. ;  ------------------------------------------------------------------------------
  220. ;
  221. ;                                Old Application Support
  222. ;
  223. ;-------------------------------------------------------------------------------- 
  224.  
  225. ;  The format of a 'cust' resource  
  226. gxCustomizationRec        RECORD 0
  227. horizontalResolution     ds.w    1                ; offset: $0 (0)        ;  Horizontal res (integral part) 
  228. verticalResolution         ds.w    1                ; offset: $2 (2)        ;  Vertical res (integral part) 
  229. upDriverType             ds.w    1                ; offset: $4 (4)        ;  "upDriver" emulation type 
  230. patternStretch             ds        Point            ; offset: $6 (6)        ;  Pattern stretch factor 
  231. translatorSettings         ds.w    1                ; offset: $A (10)        ;  Translator settings to use 
  232. sizeof                     EQU *                    ; size:   $C (12)
  233.                         ENDR
  234. ; typedef struct gxCustomizationRec *    gxCustomizationPtr
  235.  
  236. ; typedef gxCustomizationPtr *            gxCustomizationHdl
  237.  
  238. ;  The format of a 'resl' resource 
  239. gxResolutionRec            RECORD 0
  240. rangeType                 ds.w    1                ; offset: $0 (0)        ;  Always 1 
  241. xMinimumResolution         ds.w    1                ; offset: $2 (2)        ;  Min X resolution available 
  242. xMaximumResolution         ds.w    1                ; offset: $4 (4)        ;  Max X resolution available 
  243. yMinimumResolution         ds.w    1                ; offset: $6 (6)        ;  Min Y resolution available 
  244. yMaximumResolution         ds.w    1                ; offset: $8 (8)        ;  Max Y resolution available 
  245. resolutionCount             ds.w    1                ; offset: $A (10)        ;  Number of resolutions 
  246. resolutions                 ds        Point            ; offset: $C (12) <-- really an array of length one ;  Array of resolutions 
  247. sizeof                     EQU *                    ; size:   $10 (16)
  248.                         ENDR
  249. ; typedef struct gxResolutionRec *        gxResolutionPtr
  250.  
  251. ; typedef gxResolutionPtr *                gxResolutionHdl
  252.  
  253. ;
  254. ;        Constants for the "universal" print record.
  255. ;
  256. ;
  257.  
  258. ;  Constant for version number in universal print record 
  259.  
  260. gxPrintRecordVersion            EQU        8
  261. ;  Constants for feed field in universal print record 
  262.  
  263. gxAutoFeed                        EQU        0
  264. gxManualFeed                    EQU        1
  265. ;  Constants for options field in universal print record 
  266.  
  267. gxPreciseBitmap                    EQU        $0001                ; Tall adjusted (IW), precise bitmap (LW, SC) 
  268. gxBiggerPages                    EQU        $0002                ; No gaps (IW), larger print area (LW) 
  269. gxGraphicSmoothing                EQU        $0004                ; Graphic smoothing (LW) 
  270. gxTextSmoothing                    EQU        $0008                ; Text smoothing (SC) 
  271. gxFontSubstitution                EQU        $0010                ; Font substitution 
  272. gxInvertPage                    EQU        $0020                ; B/W invert image 
  273. gxFlipPageHoriz                    EQU        $0040                ; Flip horizontal 
  274. gxFlipPageVert                    EQU        $0080                ; Flip vertical 
  275. gxColorMode                        EQU        $0100                ; Color printing 
  276. gxBidirectional                    EQU        $0200                ; Bidirectional printing 
  277. gxUserFlag0                        EQU        $0400                ; User flag 0 
  278. gxUserFlag1                        EQU        $0800                ; User flag 1 
  279. gxUserFlag2                        EQU        $1000                ; User flag 2 
  280. gxReservedFlag0                    EQU        $2000                ; Reserved flag 0 
  281. gxReservedFlag1                    EQU        $4000                ; Reserved flag 1 
  282. gxReservedFlag2                    EQU        $8000                ; Reserved flag 2 
  283. ;  Constants for orientation field in universal print record 
  284.  
  285. gxPortraitOrientation            EQU        0
  286. gxLandscapeOrientation            EQU        1
  287. gxAltPortraitOrientation        EQU        2
  288. gxAltLandscapeOrientation        EQU        3
  289. ;  Constants for qualityMode field in universal print record 
  290.  
  291. gxBestQuality                    EQU        0
  292. gxFasterQuality                    EQU        1
  293. gxDraftQuality                    EQU        2
  294. ;  Constants for firstTray and remainingTray fields in universal print record 
  295.  
  296. gxFirstTray                        EQU        0
  297. gxSecondTray                    EQU        1
  298. gxThirdTray                        EQU        2
  299. ;  Constants for coverPage field in universal print record 
  300.  
  301. gxNoCoverPage                    EQU        0
  302. gxFirstPageCover                EQU        1
  303. gxLastPageCover                    EQU        2
  304. ;  Constants for headMotion field in universal print record 
  305.  
  306. gxUnidirectionalMotion            EQU        0
  307. gxBidirectionalMotion            EQU        1
  308. ;  Constants for saveFile field in universal print record 
  309.  
  310. gxNoFile                        EQU        0
  311. gxPostScriptFile                EQU        1
  312.  
  313. ;  The format of the "universal" print record 
  314. gxUniversalPrintRecord    RECORD 0
  315. printRecordVersion         ds.w    1                ; offset: $0 (0)        ;  Print record version 
  316. ;  prInfo subrecord 
  317. appDev                     ds.w    1                ; offset: $2 (2)        ;  Device kind, always 0 
  318. appVRes                     ds.w    1                ; offset: $4 (4)        ;  Application vertical resolution 
  319. appHRes                     ds.w    1                ; offset: $6 (6)        ;  Application horizontal resolution 
  320. appPage                     ds        Rect            ; offset: $8 (8)        ;  Page size, in application resolution 
  321. appPaper                 ds        Rect            ; offset: $10 (16)        ;  Paper rectangle [offset from rPage] 
  322. ;  prStl subrecord 
  323. devType                     ds.w    1                ; offset: $18 (24)        ;  Device type, always 0xA900 (was wDev) 
  324. pageV                     ds.w    1                ; offset: $1A (26)        ;  Page height in 120ths of an inch 
  325. pageH                     ds.w    1                ; offset: $1C (28)        ;  Page width in 120ths of an inch 
  326. fillByte                 ds.b    1                ; offset: $1E (30)        ;  Page calculation mode 
  327. feed                     ds.b    1                ; offset: $1F (31)        ;  Feed mode 
  328. ;  prInfoPT subrecord 
  329. devKind                     ds.w    1                ; offset: $20 (32)        ;  Device kind, always 0 
  330. devVRes                     ds.w    1                ; offset: $22 (34)        ;  Device vertical resolution 
  331. devHRes                     ds.w    1                ; offset: $24 (36)        ;  Device horizontal resolution 
  332. devPage                     ds        Rect            ; offset: $26 (38)        ;  Device page size 
  333. ;  prXInfo subrecord 
  334. actualCopies             ds.w    1                ; offset: $2E (46)        ;  Actual number of copies for this job 
  335. options                     ds.w    1                ; offset: $30 (48)        ;  Options for this device 
  336. reduction                 ds.w    1                ; offset: $32 (50)        ;  Reduce/enlarge factor 
  337. orientation                 ds.b    1                ; offset: $34 (52)        ;  Orientation of paper ( 0=portrait, 1=landscape ) 
  338. ;  Clusters and PopUps 
  339. qualityMode                 ds.b    1                ; offset: $35 (53)        ;  Quality mode 
  340. coverPage                 ds.b    1                ; offset: $36 (54)        ;  Cover page 
  341. firstTray                 ds.b    1                ; offset: $37 (55)        ;  First feed tray 
  342. remainingTray             ds.b    1                ; offset: $38 (56)        ;  Remaining feed tray 
  343. headMotion                 ds.b    1                ; offset: $39 (57)        ;  Head motion 
  344. saveFile                 ds.b    1                ; offset: $3A (58)        ;  Save file 
  345. userCluster1             ds.b    1                ; offset: $3B (59)        ;  Three clusters left over 
  346. userCluster2             ds.b    1                ; offset: $3C (60)
  347. userCluster3             ds.b    1                ; offset: $3D (61)
  348. ;  prJob subrecord 
  349. firstPage                 ds.w    1                ; offset: $3E (62)        ;  First page 
  350. lastPage                 ds.w    1                ; offset: $40 (64)        ;  Last page 
  351. copies                     ds.w    1                ; offset: $42 (66)        ;  Number of copies, always 1 
  352. reserved1                 ds.b    1                ; offset: $44 (68)        ;  Always true, unused 
  353. reserved2                 ds.b    1                ; offset: $45 (69)        ;  Always true, unused 
  354. pIdleProc                 ds.l    1                ; offset: $46 (70)        ;  Idle proc 
  355. pFileName                 ds.l    1                ; offset: $4A (74)        ;  Spool file name pointer 
  356. fileVol                     ds.w    1                ; offset: $4E (78)        ;  Spool file vRefNum 
  357. fileVers                 ds.b    1                ; offset: $50 (80)        ;  File version, must be 0 
  358. reserved3                 ds.b    1                ; offset: $51 (81)        ;  Always 0 
  359. printX                     ds.w    19                ; offset: $52 (82)        ;  Internal use 
  360. sizeof                     EQU *                    ; size:   $78 (120)
  361.                         ENDR
  362. ; typedef struct gxUniversalPrintRecord * gxUniversalPrintRecordPtr
  363.  
  364. ; typedef gxUniversalPrintRecordPtr *    gxUniversalPrintRecordHdl
  365.  
  366.  
  367. ;  ------------------------------------------------------------------------------
  368. ;
  369. ;                            Compatibility Printing Messages
  370. ;
  371. ;-------------------------------------------------------------------------------- 
  372.  
  373.  
  374. ;  ------------------------------------------------------------------------------
  375. ;
  376. ;                        Raster Driver Contants and Types
  377. ;
  378. ;-------------------------------------------------------------------------------- 
  379.  
  380. ; typedef long                             gxRasterPlaneOptions
  381.  
  382. ;  Input structure for setting up the offscreen 
  383. gxPlaneSetupRec            RECORD 0
  384. planeOptions             ds.l    1                ; offset: $0 (0)        ;  Options for the offscreen package 
  385. planeHalftone             ds        gxHalftone        ; offset: $4 (4)        ;  OPTIONAL: halftone structure for this plane 
  386. planeSpace                 ds.l    1                ; offset: $38 (56)        ;  OPTIONAL: noSpace will get the graphics default 
  387. planeSet                 ds.l    1                ; offset: $3C (60)        ;  OPTIONAL: NIL gets the default 
  388. planeProfile             ds.l    1                ; offset: $40 (64)        ;  OPTIONAL: NIL gets no matching 
  389. sizeof                     EQU *                    ; size:   $44 (68)
  390.                         ENDR
  391. ;  Constants for planeOptions field in gxPlaneSetupRec 
  392.  
  393. gxDefaultOffscreen                EQU        $00000000            ; Default value - bits are allocated for the client, halftoning takes place 
  394. gxDontSetHalftone                EQU        $00000001            ; Don't call SetViewPortHalftone 
  395. gxDotTypeIsDitherLevel            EQU        $00000002            ; Call SetViewPortDither using the dotType as the level 
  396.  
  397. gxOffscreenSetupRec        RECORD 0
  398. width                     ds.w    1                ; offset: $0 (0)        ;  Width in pixels 
  399. minHeight                 ds.w    1                ; offset: $2 (2)        ;  Minimum height in pixels - actual height returned here 
  400. maxHeight                 ds.w    1                ; offset: $4 (4)        ;  Maximum height in pixels 
  401. ramPercentage             ds.l    1                ; offset: $6 (6)        ;  Maximum percentage of RAM to take 
  402. ramSlop                     ds.l    1                ; offset: $A (10)        ;  Amount of RAM to be sure to leave 
  403. depth                     ds.w    1                ; offset: $E (14)        ;  Depths in bits of each plane 
  404. vpMapping                 ds        gxMapping        ; offset: $10 (16)        ;  Mapping to assign to offscreen viewPorts 
  405. vdMapping                 ds        gxMapping        ; offset: $34 (52)        ;  Mapping to assign to offscreen viewDevices 
  406. planes                     ds.w    1                ; offset: $58 (88)        ;  Number of planes to allocate of depth bits each (can be more than 4) 
  407. planeSetup                 ds.b    4 * gxPlaneSetupRec.sizeof ; offset: $5A (90) ;  Parameters for each plane, 4 is provided because it is most handy for writers of devices 
  408. sizeof                     EQU *                    ; size:   $16A (362)
  409.                         ENDR
  410.  
  411. ;  The format of one plane in the offscreen planar area 
  412. gxOffscreenPlaneRec        RECORD 0
  413. theViewPort                 ds.l    1                ; offset: $0 (0)        ;  viewPort for the offscreen 
  414. theDevice                 ds.l    1                ; offset: $4 (4)        ;  viewDevice for the offscreen 
  415. theViewGroup             ds.l    1                ; offset: $8 (8)        ;  The viewGroup that they share 
  416. theBitmap                 ds.l    1                ; offset: $C (12)        ;  The offscreen bitmap shape 
  417. theBits                     ds        gxBitmap        ; offset: $10 (16)        ;  The bits of the offscreen 
  418. sizeof                     EQU *                    ; size:   $30 (48)
  419.                         ENDR
  420.  
  421. ;  The format of an entire offscreen area 
  422. gxOffscreenRec            RECORD 0
  423. numberOfPlanes             ds.w    1                ; offset: $0 (0)        ;  Number of planes we have 
  424. offscreenStorage         ds.l    1                ; offset: $2 (2)        ;  Handle containing the bitmaps image data 
  425. thePlanes                 ds        gxOffscreenPlaneRec ; offset: $6 (6) <-- really an array of length one ;  Planes to draw in 
  426. sizeof                     EQU *                    ; size:   $36 (54)
  427.                         ENDR
  428. ; typedef struct gxOffscreenRec *        gxOffscreenPtr
  429.  
  430. ; typedef gxOffscreenPtr *                gxOffscreenHdl
  431.  
  432. ; typedef long                             gxRasterRenderOptions
  433.  
  434. ;  Structure that mirrors 'rdip' resource. 
  435. gxRasterPrefsRec        RECORD 0
  436. renderOptions             ds.l    1                ; offset: $0 (0)        ;  Options for the raster imaging system 
  437. hImageRes                 ds.l    1                ; offset: $4 (4)        ;  Horizontal resolution to image at 
  438. vImageRes                 ds.l    1                ; offset: $8 (8)        ;  Vertical resolution to image at 
  439. minBandSize                 ds.w    1                ; offset: $C (12)        ;  Minimum band size to use (in pixels) 
  440. maxBandSize                 ds.w    1                ; offset: $E (14)        ;  Maximum band size to use (in pixels), 0 == entire page 
  441. ramPercentage             ds.l    1                ; offset: $10 (16)        ;  Maximum percentage of RAM to take 
  442. ramSlop                     ds.l    1                ; offset: $14 (20)        ;  Amount of RAM to be sure to leave 
  443. depth                     ds.w    1                ; offset: $18 (24)        ;  Depth in pixels (PER PLANE!) 
  444. numPlanes                 ds.w    1                ; offset: $1A (26)        ;  Number of planes to render 
  445. planeSetup                 ds        gxPlaneSetupRec ; offset: $1C (28) <-- really an array of length one ;  One for each plane 
  446. sizeof                     EQU *                    ; size:   $60 (96)
  447.                         ENDR
  448. ;  Constants for renderOptions field in gxRasterPrefsRec. 
  449.  
  450. gxDefaultRaster                    EQU        $00000000            ; Default raster options 
  451. gxDontResolveTransferModes        EQU        $00000001            ; 0=Resolve, 1=Don't Resolve 
  452. gxRenderInReverse                EQU        $00000002            ; Traverse image in reverse order 
  453. gxOnePlaneAtATime                EQU        $00000004            ; Render each plane separately 
  454. gxSendAllBands                    EQU        $00000008            ; Send even empty bands 
  455. ; typedef struct gxRasterPrefsRec *        gxRasterPrefsPtr
  456.  
  457. ; typedef gxRasterPrefsPtr *            gxRasterPrefsHdl
  458.  
  459. ; typedef long                             gxRasterPackageOptions
  460.  
  461. ;  Structure that mirrors 'rpck' resource. 
  462. gxRasterPackageRec        RECORD 0
  463. bufferSize                 ds.l    1                ; offset: $0 (0)        ;  Buffer size for packaging (>= maximum head pass size) 
  464. colorPasses                 ds.w    1                ; offset: $4 (4)        ;  1 (b/w) or 4 (CMYK) is typical 
  465. headHeight                 ds.w    1                ; offset: $6 (6)        ;  Printhead height in pixels 
  466. numberPasses             ds.w    1                ; offset: $8 (8)        ;  Number of head passes it takes to == iHeadHeight 
  467. passOffset                 ds.w    1                ; offset: $A (10)        ;  Offset between passes, in pixels 
  468. packageOptions             ds.l    1                ; offset: $C (12)        ;  Packaging options 
  469. sizeof                     EQU *                    ; size:   $10 (16)
  470.                         ENDR
  471. ; typedef struct gxRasterPackageRec *    gxRasterPackagePtr
  472.  
  473. ; typedef gxRasterPackagePtr *            gxRasterPackageHdl
  474.  
  475. ;  Constants for packageOptions field in gxRasterPackageRec. 
  476.  
  477. gxSendAllColors                    EQU        $00000001            ; Send even clean bands through 
  478. gxInterlaceColor                EQU        $00000002            ; Ribbon contamination is a concern 
  479. gxOverlayColor                    EQU        $00000004            ; Color printer without a ribbon problem 
  480. gxUseColor                        EQU        $00000006            ; This is a color printer 
  481.  
  482. ;  Structure for RasterPackageBitmap message 
  483. gxRasterPackageBitmapRec RECORD 0
  484. bitmapToPackage             ds.l    1                ; offset: $0 (0)        ;  Bitmap containing the data to package 
  485. startRaster                 ds.w    1                ; offset: $4 (4)        ;  Raster to begin the packaging from 
  486. colorBand                 ds.w    1                ; offset: $6 (6)        ;  For which color pass this is a packaging request 
  487. isBandDirty                 ds.b    1                ; offset: $8 (8)        ;  Whether there are any dirty bits in this band 
  488. padByte                     ds.b    1                ; offset: $9 (9)
  489. dirtyRect                 ds        Rect            ; offset: $A (10)        ;  Which bits are dirty 
  490. sizeof                     EQU *                    ; size:   $12 (18)
  491.                         ENDR
  492.  
  493. ;  Structure of number record in gxRasterPackageControlsRec 
  494. gxStandardNumberRec        RECORD 0
  495. numberType                 ds.w    1                ; offset: $0 (0)        ;  Type of numberic output desired 
  496. minWidth                 ds.w    1                ; offset: $2 (2)        ;  Minimum output width of the number 
  497. padChar                     ds.b    1                ; offset: $4 (4)        ;  Pad character for numbers shorter than the minWidth 
  498. padChar2                 ds.b    1                ; offset: $5 (5)
  499. startString                 ds        Str31            ; offset: $6 (6)        ;  Prefix string 
  500. endString                 ds        Str31            ; offset: $26 (38)        ;  Postfix string 
  501. sizeof                     EQU *                    ; size:   $46 (70)
  502.                         ENDR
  503. ; typedef struct gxStandardNumberRec *    gxStandardNumberPtr
  504.  
  505. ;  Structure that mirrors 'ropt' resource 
  506. gxRasterPackageControlsRec RECORD 0
  507. startPageStringID         ds.w    1                ; offset: $0 (0)        ;  'wstr' to send to the device at start of page 
  508. formFeedStringID         ds.w    1                ; offset: $2 (2)        ;  'wstr' to send to the device to cause a form feed 
  509. forwardMax                 ds.w    1                ; offset: $4 (4)        ;  Line feed strings 
  510. forwardLineFeed             ds        gxStandardNumberRec ; offset: $6 (6)    ;  Number record for forward line feed 
  511. reverseMax                 ds.w    1                ; offset: $4C (76)        ;  Max number of reverse line feeds device can do 
  512. reverseLineFeed             ds        gxStandardNumberRec ; offset: $4E (78) ;  Number record for forward line feed 
  513. sizeof                     EQU *                    ; size:   $94 (148)
  514.                         ENDR
  515. ; typedef struct gxRasterPackageControlsRec * gxRasterPackageControlsPtr
  516.  
  517. ; typedef gxRasterPackageControlsPtr *    gxRasterPackageControlsHdl
  518.  
  519. ;  Raster imaging system imageData structure 
  520. gxRasterImageDataRec    RECORD 0
  521. renderOptions             ds.l    1                ; offset: $0 (0)        ;  Options for the raster imaging system 
  522. hImageRes                 ds.l    1                ; offset: $4 (4)        ;  horizontal resolution to image at 
  523. vImageRes                 ds.l    1                ; offset: $8 (8)        ;  vertical resolution to image at 
  524. minBandSize                 ds.w    1                ; offset: $C (12)        ;  smallest band that makes sense for this device 
  525. maxBandSize                 ds.w    1                ; offset: $E (14)        ;  biggest band that makes sense, or 0 for "full page" 
  526. pageSize                 ds        gxRectangle        ; offset: $10 (16)        ;  size of page for device 
  527. ;  Values used within the RasterDataIn message 
  528. currentYPos                 ds.w    1                ; offset: $20 (32)        ;  Current position moving down the page 
  529. packagingInfo             ds        gxRasterPackageRec ; offset: $22 (34)    ;  Raster packaging record 
  530. ;  Values used within the remaining messages 
  531. optionsValid             ds.b    1                ; offset: $32 (50)        ;  Were options specified by the driver? 
  532. padByte                     ds.b    1                ; offset: $33 (51)
  533. packageControls             ds        gxRasterPackageControlsRec ; offset: $34 (52) ;  Options for the packaging messages 
  534. theSetup                 ds        gxOffscreenSetupRec ; offset: $C8 (200) ;  setup for the offscreen code, variable length componant 
  535. sizeof                     EQU *                    ; size:   $232 (562)
  536.                         ENDR
  537. ; typedef struct gxRasterImageDataRec *    gxRasterImageDataPtr
  538.  
  539. ; typedef gxRasterImageDataPtr *        gxRasterImageDataHdl
  540.  
  541. ;  ------------------------------------------------------------------------------
  542. ;
  543. ;                                Raster Driver Imaging Messages
  544. ;
  545. ;-------------------------------------------------------------------------------- 
  546.  
  547.  
  548. ;  ------------------------------------------------------------------------------
  549. ;
  550. ;                        Vector Driver Contants and Types
  551. ;
  552. ;-------------------------------------------------------------------------------- 
  553.  
  554. ;  Vector device halftone component record 
  555. gxVHalftoneCompRec        RECORD 0
  556. angle                     ds.l    1                ; offset: $0 (0)        ;  Angle to halftone at. Must be 0, 90, 45 or 135 
  557. penIndex                 ds.l    1                ; offset: $4 (4)        ;  index of the pen to draw this component with 
  558. sizeof                     EQU *                    ; size:   $8 (8)
  559.                         ENDR
  560.  
  561. ;  Vector device halftone record 
  562. gxVHalftoneRec            RECORD 0
  563. halftoneSpace             ds.l    1                ; offset: $0 (0)
  564. halftoneComps             ds.b    4 * gxVHalftoneCompRec.sizeof ; offset: $4 (4) ;  Info for each color component 
  565. penIndexForBW             ds.l    1                ; offset: $24 (36)        ;  Pen index to draw one bit deep or black and white bitmap with 
  566. sizeof                     EQU *                    ; size:   $28 (40)
  567.                         ENDR
  568.  
  569. ;  Vector shape rendering information 
  570. ; typedef long                             gxVectorShapeOptions
  571.  
  572. gxVectorShapeDataRec    RECORD 0
  573. shapeOptions             ds.l    1                ; offset: $0 (0)        ;  Options to control shape handling 
  574. maxPolyPoints             ds.l    1                ; offset: $4 (4)        ;  Maximum number of polygon points that device can support 
  575. shapeError                 ds.l    1                ; offset: $8 (8)        ;  Defines allowed deviation from the original shape 
  576. textSize                 ds.l    1                ; offset: $C (12)        ;  Text above this size is filled; text below this size is outlined 
  577. frameSize                 ds.l    1                ; offset: $10 (16)        ;  Frame's smaller than this -> shape stroked; frame's larger -> shape is filled 
  578. sizeof                     EQU *                    ; size:   $14 (20)
  579.                         ENDR
  580.  
  581. ;  Constants for shapeOptions field in gxVectorShapeDataRec. 
  582.  
  583. gxUnidirectionalFill            EQU        $00000001            ; Generate scanlines in one direction only.  Useful for transparencies 
  584. gxAlsoOutlineFilledShape        EQU        $00000002            ; Turn on this bit to also outline solid filled shapes 
  585.  
  586. ;  Vector device rendering information 
  587. ; typedef long                             gxVectorRenderOptions
  588.  
  589. ;  Vector imaging system imageData structure 
  590. gxVectorImageDataRec    RECORD 0
  591. renderOptions             ds.l    1                ; offset: $0 (0)        ;  Options to control rendering: color sort, clipping, etc. 
  592. devRes                     ds.l    1                ; offset: $4 (4)        ;  Device resolution 
  593. devTransform             ds.l    1                ; offset: $8 (8)        ;  Mapping, clip and halftoning information for colored bitmaps 
  594. clrSet                     ds.l    1                ; offset: $C (12)        ;  Entire set of colors; usually indexed color space for pen plotters 
  595. bgColor                     ds        gxColor            ; offset: $10 (16)        ;  The background color in the color space specified by the clrSpace field 
  596. halftoneInfo             ds        gxVHalftoneRec ; offset: $20 (32)        ;  Defines halftone information for color bitmaps 
  597. hPenTable                 ds.l    1                ; offset: $48 (72)        ;  Complete list of pens along with their pen positions and thickness 
  598. pageRect                 ds        gxRectangle        ; offset: $4C (76)        ;  Page dimensions 
  599. shapeData                 ds        gxVectorShapeDataRec ; offset: $5C (92) ;  Information on how to render a shape 
  600. sizeof                     EQU *                    ; size:   $70 (112)
  601.                         ENDR
  602. ; typedef struct gxVectorImageDataRec *    gxVectorImageDataPtr
  603.  
  604. ; typedef gxVectorImageDataPtr *        gxVectorImageDataHdl
  605.  
  606. ;  Constants for renderOptions field in gxVectorImageDataRec. 
  607.  
  608. gxColorSort                        EQU        $00000001            ; Set for pen plotters 
  609. gxATransferMode                    EQU        $00000002            ; Set if transfer modes need to be resolved 
  610. gxNoOverlap                        EQU        $00000004            ; Set if non-overlapping output is desired
  611. gxAColorBitmap                    EQU        $00000008            ; Set if color bitmap output is desired 
  612. gxSortbyPenPos                    EQU        $00000010            ; Set if shapes are to be drawn in the order of the pen index 
  613.                                                             ; in the pen table. NOTE: this is not the pen position in the carousel 
  614. gxPenLessPlotter                EQU        $00000020            ; Indicates raster printer/plotter 
  615. gxCutterPlotter                    EQU        $00000040            ; Indicates cutter 
  616. gxNoBackGround                    EQU        $00000080            ; Set if shapes that map to the background color should not be sent to driver 
  617.  
  618. ;  ------------------------------------------------------------------------------
  619. ;
  620. ;                                Vector Driver Imaging Messages
  621. ;
  622. ;-------------------------------------------------------------------------------- 
  623.  
  624.  
  625. ;  ------------------------------------------------------------------------------
  626. ;
  627. ;                            PostScript Driver Contants and Types
  628. ;
  629. ;-------------------------------------------------------------------------------- 
  630.  
  631.  
  632. gxPostSynonym                    EQU        'post'
  633. ;  PostScript glyphs record 
  634. gxPrinterGlyphsRec        RECORD 0
  635. theFont                     ds.l    1                ; offset: $0 (0)        ;   ---> Font reference 
  636. nGlyphs                     ds.l    1                ; offset: $4 (4)        ;   ---> Number of glyphs in the font 
  637. platform                 ds.l    1                ; offset: $8 (8)        ;  <---  How printer font is encoded 
  638. script                     ds.l    1                ; offset: $C (12)        ;  <---  Script if platform != glyphPlatform 
  639. language                 ds.l    1                ; offset: $10 (16)        ;  <---  Language if platform != glyphPlatform 
  640. vmUsage                     ds.l    1                ; offset: $14 (20)        ;  <---  How much PostScript VM font uses 
  641. ;  Size of this array is long-alligned(nGlyphs) 
  642. glyphBits                 ds.l    1                ; offset: $18 (24) <-- really an array of length one ;  <---  Bit array of which system glyphs are in printer 
  643. sizeof                     EQU *                    ; size:   $1C (28)
  644.                         ENDR
  645.  
  646. ;  PostScript device rendering information 
  647. ; typedef long                             gxPostScriptRenderOptions
  648.  
  649. gxPostScriptImageDataRec RECORD 0
  650. languageLevel             ds.w    1                ; offset: $0 (0)        ;  PostScript language level 
  651. devCSpace                 ds.l    1                ; offset: $2 (2)        ;  The printer's color space 
  652. devCProfile                 ds.l    1                ; offset: $6 (6)        ;  The printer's color profile for matching 
  653. renderOptions             ds.l    1                ; offset: $A (10)        ;  Options for the imaging system 
  654. pathLimit                 ds.l    1                ; offset: $E (14)        ;  Maximum path size 
  655. gsaveLimit                 ds.w    1                ; offset: $12 (18)        ;  Maximum number of gsaves allowed 
  656. opStackLimit             ds.w    1                ; offset: $14 (20)        ;  Operand stack limit 
  657. fontType                 ds.l    1                ; offset: $16 (22)        ;  These are the font types that the printer supports  
  658. printerVM                 ds.l    1                ; offset: $1A (26)        ;  How much memory is in the printer 
  659. reserved0                 ds.l    1                ; offset: $1E (30)
  660. sizeof                     EQU *                    ; size:   $22 (34)
  661.                         ENDR
  662. ; typedef struct gxPostScriptImageDataRec * gxPostScriptImageDataPtr
  663.  
  664. ; typedef gxPostScriptImageDataPtr *    gxPostScriptImageDataHdl
  665.  
  666. ;  Constants for renderOptions field in gxPostScriptImageDataRec. 
  667.  
  668. gxNeedsHexOption                EQU        $00000001            ; Convert all binary data to hex 
  669. gxNeedsCommentsOption            EQU        $00000002            ; Issue PostScript comments 
  670. gxBoundingBoxesOption            EQU        $00000004            ; Calculate the values for 
  671. gxPortablePostScriptOption        EQU        $00000008            ; Generate portable PostScript 
  672. gxTextClipsToPathOption            EQU        $00000010            ; Convert all clips that are composed of text to path shapes 
  673. gxFlattenClipPathOption            EQU        $00000020            ; Convert all clips that are path shapes to polygons (helps better control point limit) 
  674. gxUseCharpath1Option            EQU        $00000040            ; (ignored if text clips are converted to paths)  When the clip is text,  
  675.                                                             ; Do it one glyph at a time, redrawing the main shape each time 
  676. gxUseLevel2ColorOption            EQU        $00000080            ; When printing to level-2 use level-2 device independent color 
  677. gxNoEPSIllegalOperators            EQU        $00000100            ; Don't use any operators prohibited by the Encapsulated PostScript File Format V3.0 
  678. gxEPSTargetOption                EQU        $00000106            ; PostScript intended for EPS Use. 
  679. gxPageIndependentPostScript        EQU        $00000200            ; Don't generate PostScript with page interdependencies 
  680.  
  681. ;  Structure for gxPostScriptGetProcSetList / gxPostScriptDownLoadProcSetList 
  682. gxProcSetListRec        RECORD 0
  683. clientid                 ds.l    1                ; offset: $0 (0)
  684. controlType                 ds.l    1                ; offset: $4 (4)        ;  The driver will call FetchTaggedData on each of these resources 
  685. controlid                 ds.w    1                ; offset: $8 (8)
  686. dataType                 ds.l    1                ; offset: $A (10)
  687. reserved0                 ds.l    1                ; offset: $E (14)
  688. sizeof                     EQU *                    ; size:   $12 (18)
  689.                         ENDR
  690. ; typedef struct gxProcSetListRec *        gxProcSetListPtr
  691.  
  692. ; typedef gxProcSetListPtr *            gxProcSetListHdl
  693.  
  694. ;  Possible results of querying printer (returned by gxPostScriptQueryPrinter message) 
  695.  
  696. gxPrinterOK                        EQU        0
  697. gxIntializePrinter                EQU        1
  698. gxFilePrinting                    EQU        2
  699. gxResetPrinter                    EQU        128
  700.  
  701. ;  ------------------------------------------------------------------------------
  702. ;
  703. ;                                PostScript Driver Imaging Messages
  704. ;
  705. ;-------------------------------------------------------------------------------- 
  706.  
  707. ;  Device control messages 
  708. ;  Device communication messages 
  709. ;  Proc set management messages 
  710. ;  Font management messages 
  711. ;  Document structuring and formatting messages 
  712. ;  Page structuring and formatting messages 
  713. ;  Shape imaging messages 
  714. ;  ------------------------------------------------------------------------------
  715. ;
  716. ;                                            Driver API Functions
  717. ;
  718. ;-------------------------------------------------------------------------------- 
  719.  
  720. ;  Constants for printer gxViewDevice bitmaps. 
  721.  
  722. gxMissingImagePointer            EQU        -4
  723. ;
  724. ; extern OSErr GXAddPrinterViewDevice(gxPrinter thePrinter, gxViewDevice theViewDevice)
  725. ;
  726.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  727.         Macro
  728.         _GXAddPrinterViewDevice
  729.             move.l              #$00020000,D0
  730.             dc.w                $ABFE
  731.         EndM
  732.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  733.         IMPORT_CFM_FUNCTION GXAddPrinterViewDevice
  734.     ENDIF
  735.  
  736. ;
  737. ; extern OSErr GXGetAvailableJobFormatModes(gxJobFormatModeTableHdl *theFormatModes)
  738. ;
  739.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  740.         Macro
  741.         _GXGetAvailableJobFormatModes
  742.             move.l              #$00020001,D0
  743.             dc.w                $ABFE
  744.         EndM
  745.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  746.         IMPORT_CFM_FUNCTION GXGetAvailableJobFormatModes
  747.     ENDIF
  748.  
  749. ;
  750. ; extern OSErr GXSetPreferredJobFormatMode(gxJobFormatMode theFormatMode, Boolean directOnly)
  751. ;
  752.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  753.         Macro
  754.         _GXSetPreferredJobFormatMode
  755.             move.l              #$00020002,D0
  756.             dc.w                $ABFE
  757.         EndM
  758.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  759.         IMPORT_CFM_FUNCTION GXSetPreferredJobFormatMode
  760.     ENDIF
  761.  
  762. ;
  763. ; extern OSErr GXPrintingAlert(long iconId, long txtSize, long defaultTitleNum, long cancelTitleNum, long textLength, Ptr pAlertMsg, StringPtr actionTitle, StringPtr title2, StringPtr title3, StringPtr msgFont, ModalFilterUPP filterProc, short *itemHit, StringPtr alertTitle)
  764. ;
  765.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  766.         Macro
  767.         _GXPrintingAlert
  768.             move.l              #$00020003,D0
  769.             dc.w                $ABFE
  770.         EndM
  771.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  772.         IMPORT_CFM_FUNCTION GXPrintingAlert
  773.     ENDIF
  774.  
  775. ;
  776. ; extern OSErr GXGetPrintingAlert(long alertResId, ModalFilterUPP filterProc, short *itemHit)
  777. ;
  778.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  779.         Macro
  780.         _GXGetPrintingAlert
  781.             move.l              #$00020004,D0
  782.             dc.w                $ABFE
  783.         EndM
  784.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  785.         IMPORT_CFM_FUNCTION GXGetPrintingAlert
  786.     ENDIF
  787.  
  788.  
  789. ;
  790. ; extern OSErr GXFetchDTPData(Str31 dtpName, OSType theType, long theID, Handle *theData)
  791. ;
  792.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  793.         Macro
  794.         _GXFetchDTPData
  795.             move.l              #$00020005,D0
  796.             dc.w                $ABFE
  797.         EndM
  798.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  799.         IMPORT_CFM_FUNCTION GXFetchDTPData
  800.     ENDIF
  801.  
  802. ;
  803. ; extern OSErr GXWriteDTPData(Str31 dtpName, OSType theType, long theID, Handle theData)
  804. ;
  805.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  806.         Macro
  807.         _GXWriteDTPData
  808.             move.l              #$00020006,D0
  809.             dc.w                $ABFE
  810.         EndM
  811.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  812.         IMPORT_CFM_FUNCTION GXWriteDTPData
  813.     ENDIF
  814.  
  815. ;
  816. ; extern OSErr GXHandleChooserMessage(gxJob *aJob, Str31 driverName, long message, long caller, StringPtr objName, StringPtr zoneName, ListHandle theList, long p2)
  817. ;
  818.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  819.         Macro
  820.         _GXHandleChooserMessage
  821.             move.l              #$00020007,D0
  822.             dc.w                $ABFE
  823.         EndM
  824.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  825.         IMPORT_CFM_FUNCTION GXHandleChooserMessage
  826.     ENDIF
  827.  
  828.     ENDIF ; __GXPRINTERDRIVERS__ 
  829.  
  830.